ipywidgets と Bokeh を組み合わせることで Jupyter notebook 上でインタラクティブに描画をすることができますが,「ボタンを押すことで描画の領域を変更する」という操作を実現するやり方はありますか?
イメージとしては次のようなコードで動いてほしいです.

import numpy as np
from bokeh.plotting import figure, show
from bokeh.models import Range1d
from bokeh.io import output_notebook, push_notebook
from ipywidgets import interact, Button

%matplotlib inline

def on_clicked_button(b):
    p.x_range = Range1d(2, 6) # x軸描画範囲を(2, 6)に変更
    push_notebook(handle=t)

b = Button(description="Adjust")
b.on_click(on_clicked_button)

output_notebook()
p = figure()
l1 = p.line(np.arange(3), np.array([2, 3, 0]))

t = show(p, notebook_handle=True)
display(b)
interact()

Adjustボタンをクリックすることで,ユーザーがどのような範囲に描画を移動していたとしても(2, 6)に戻すようなことを実行したいですが,このコードでは p.x_range の変更が描画に反映されません.
一方で, p.x_range = ... の部分を p.title.text = 'hoge' と変更するとこちらは動いた(ボタンクリックでタイトルが変わった)ため, bokeh.plotting.figure.x_range に依存した問題なのかと考えています.
解決策がなくても何かご存知のことがあればご教示いただければと思います.よろしくお願いします.