Concatenar colunas distintas em dois quadros de dados usando pandas (e anexar colunas semelhantes)

Minha pergunta está intimamente relacionada aPandas Merge - Como evitar a duplicação de colunas mas não idêntic

Quero concatenar as colunas que são diferentes em três quadros de dados. Os quadros de dados têm um ID de coluna e algumas colunas idênticas: Ex.

df1

id place name qty unit A 
1 NY    Tom   2  10   a
2 TK    Ron   3  15   a
3 Lon   Don   5  90   a
4 Hk    Sam   4  49   a

df2

id place name qty unit B 
1 NY    Tom   2  10   b
2 TK    Ron   3  15   b
3 Lon   Don   5  90   b
4 Hk    Sam   4  49   b

df3

id place name qty unit C D
1 NY    Tom   2  10   c d
2 TK    Ron   3  15   c d
3 Lon   Don   5  90   c d
4 Hk    Sam   4  49   c d

Resultado

id place name qty unit A B C D
1 NY    Tom   2  10   a b c d
2 TK    Ron   3  15   a b c d
3 Lon   Don   5  90   a b c d
4 Hk    Sam   4  49   a b c d

As colunas local, nome, qty e unidade sempre farão parte dos três quadros de dados; os nomes das colunas diferentes podem variar (A, B, C, D no meu exemplo). Os três quadros de dados têm o mesmo número de linha

Eu tentei

cols_to_use = df1.columns - df2.columns
dfNew = merge(df, df2[cols_to_use], left_index=True, right_index=True, how='outer')

O problema é que obtenho mais linhas do que o esperado e colunas renomeadas no dataframe resultante (ao usar concat

questionAnswers(4)

yourAnswerToTheQuestion