You could add each trace a loop.
fig = make_subplots(rows=1, cols=2)
for trace in p3().data:
fig.add_trace(trace,
row=1, col=1
)
for trace in p2().data:
fig.add_trace(trace,
row=1, col=2
)
fig.update_layout(height=600, width=800, title_text="Side By Side Subplots")
fig.show()