However I can not see how to reduce source data to specific year in scatter plot:
plot.scatter('x', 'y', source=source)
nor, how to make javascript callback function that would filter this data on a specific year. Yep.
It would be much simpler to do this with the Bokeh server than with a CustomJS callback, but if that is your requirement, I'd suggest studying the example notebook here which does exactly why you describe:
Note: Bokeh plots do not render on GH due to JavaScript scrubbing by GH. You will have to run the notebook locally. There is an associated python module in the same directory as that notebook that is needed as well.
Can I get some pointers how to do it (without using flask server)?