Use compressed layout - https://matplotlib.org/stable/users/explain/axes/constrainedlayout_guide.html#compressed-layout
fig, axs = plt.subplots(2, 2, layout='compressed')
It resizes the entire figure to remove redundant white space.