Dropdown multi input not responding to Graph

Hey all, I dont seem to be able to initiate and update my plotly graph after selecting multiple inputs in my dropdown. Please help and here is my code thanks!:

app = dash.Dash()

site_options = [] #create an empty list first
for site in df1['SITE_TYPE'].unique():
    site_options.append({'label':str(site), 'value': site})

app.layout = html.Div([
            dcc.Graph(id='graph'),
            dcc.Dropdown(id='site-picker', options=site_options, multi=True,
                         value=[df1['SITE_TYPE'].sort_values()[0]]) #setting default value as min of the data column
])

@app.callback(Output('graph','figure'),
              [Input('site-picker','value')])
def update_fig(selected_site):
    
    #DATA ONLY FOR SELETED POSTCODE FROM DROPDOWN
    filtered_df = df1[df1['SITE_TYPE'] == selected_site]
    
    traces = []
    
    for site_name in filtered_df['NAME_REF'].unique():
        df_by_site = filtered_df[filtered_df['NAME_REF']==site_name]
        traces.append(go.Scatter(
            x=df_by_site['INCOME'],
            y=df_by_site['TOTAL_EXPENSES'],
            mode='markers',
            opacity=0.7,
            marker = {'size':15},
            name=site_name
        ))
    
    return {'data': traces,
            'layout':go.Layout(title='Plot 1', 
                               xaxis= dict(title='INCOME', showspikes=True),
                               yaxis= dict(title='TOTAL_EXPENSES', showspikes=True),
                               hovermode = 'closest'
                               )}

   if __name__ == '__main__' :
        app.run_server()