Widget not resizing in template after changing size parameter

I have two Select widgets where the list of options in the second widget depends on what is selected in the first widget. I want the size of the second widget to resize based on the length of options available, but the widget doesn’t seem to be resizing dynamically. Reproducer below, opt2 widget doesn’t resize in the template sidebar when “letters” is selected in opt1 widget even though I change the size paramater using set_param.

app = pn.template.FastListTemplate(title='Test')
opt1 = pn.widgets.Select(name="Option1", options=['numbers', 'letters'], size=2)
opts = list(range(1, 7))
opt2 = pn.widgets.Select(
    name="Option 2",
    options=opts,
    size=len(opts),
)
def update_opt2(event):
    options = list(range(1, 7)) if event.obj.value == 'numbers' else ['A', 'B', 'C', 'D']
    opt2.param.set_param(options=options, size=len(options))

def update_main_area(event):
    main_col.objects=[opt1.value, opt2.value]
    
opt1.param.watch(update_opt2, "value")
submit_btn = pn.widgets.Button(name="Submit")
submit_btn.on_click(update_main_area)
sidebar_col = pn.Column( opt1, opt2, submit_btn)
main_col = pn.Column(sizing_mode='stretch_both')
app.sidebar.append(sidebar_col)
app.main.append(main_col)

app.servable()