Welcome to the community. Can you update your example to be self contained? So it can be copied and pasted to run. Right now the example is missing the module import and the function update_data is not being called.
I have reduced the example to the following (basically removed the Bokeh part of your example) and running it with panel serve and I see the problem you are describing. I have a suspicion it could be related to holoviews #5158.
import datashader as ds
import holoviews as hv
import numpy as np
import pandas as pd
import panel as pn
from holoviews.operation.datashader import datashade
from holoviews.streams import Pipe
hv.extension("bokeh")
# dummy timeseries data
df = pd.DataFrame({"t": np.arange(500), "x": np.random.rand(500)})
pipe = Pipe(data=[])
ts_dmap = hv.DynamicMap(hv.Curve, streams=[pipe]).opts(framewise=True)
ts = datashade(
ts_dmap, cnorm="linear", interpolation="default", aggregator=ds.count()
).opts(framewise=True)
pipe.send(df.iloc[:10, :])
def update_data(event):
# manual range update on RangeXY streams works
# ts.streams[1].x_range = (df['t'].min(), df['t'].max())
# ts.streams[1].y_range = (df['x'].min(), df['x'].max())
pipe.send(df)
button = pn.widgets.Button(name="Update")
button.on_click(update_data)
pn.Column(button, ts).servable()