pts = hv.DynamicMap(pn.bind(plot_my_points, color_method=drop_down, should_datashade=datashade_switch, watch=True))
I think you should drop the watch=True because it returns a value.
Also, you might be interested in Show individual points when zoomed, else datashade