40000 Traces on map

I am trying to plot all the flights of the world for a day on the map. It is nearly 40000 pairs of airports. I am able to plot but it is extremely slow. I want to show the flights for a week with animation moving over Monday to Sunday. How to do it.

This is what I have:

for i in range(len(df_flight_paths)):
    fig.add_trace(
        go.Scattergeo(
            lon = [df_flight_paths['from_longitude'][i], df_flight_paths['to_longitude'][i]],
            lat = [df_flight_paths['from_latitude'][i], df_flight_paths['to_latitude'][i]],
            mode = 'lines',
            hoverinfo=None,            
            line = dict(width = 1,color = 'blue'),
            opacity = .05,
            #opacity = float(df_flight_paths['Total'][i]) / float(df_flight_paths['Total'].max()),
        )
    )
    
fig.update_layout(
    title_text = 'World Flights',
    showlegend = False,
    geo = dict(
        showland = True,
    ),
    
    
)