In pandas it happens automatically, just by calling pd.concat([df1, df2, df3]) and the frame that didn't have the column previously just gets a column filled with NaNs.
In polars i get a 'shape error' with the message that the columns differ (11 cols in df1 vs 12 cols in df2).