3/3. Very nice plot grid. Maybe instead of plt.subplots(...) you can try sns.FacetGrid().
5/5. Nicely separated preprocessing before checking hypotheses (we didn't dropna and had a positive slope in hyp 1). But as you say, the effect is to be taken with caution, the dots are very spread.
2/2. Nice sanity check of t/p-values with np.isclose().
2 points for good coding style. Very clean and legible and producing pretty, clean graphs. Well documented.
2 points for good coding style. Very clean and legible and producing pretty, clean graphs. Well documented.