From the standard matplotlib.pyplot.scatter() function you will only get 2D plotting as there’s no z parameter. You’d want to be using the scatter method of the 3D axis itself, e.g.
fig_3d = plt.figure()
ax_3d = plt.subplot(1, 1, 1, projection="3d")
orion_3d_scatter = ax_3d.scatter(x, y, z ...
You can check the docs for details which I think would also cover your second query as it covers the parameters you’d need to supply in order to alter size, shape and colour of the scatter points-