The default value of the scatter function of the Axes3D class (which gets called in this case) is 20. However 20 is also the default value if s is None in the Axes class (in normal mode). So when you set it to None in 3d mode, it will not get a default value and raises an error.
Axes3d:
def scatter(self, xs, ys, zs=0, zdir='z', s=20, c=None, depthshade=True,
*args, **kwargs)
Axes:
def scatter(self, x, y, s=None, c=None, marker=None, cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None, *,
edgecolors=None, plotnonfinite=False, **kwargs)
I'm not sure how I could provide a solution, since not using the parameter would use default behavior. What would you want to achieve by setting it to None?