Plot count of one column versus time grouped by another column

I want to create a bar graph showing count of top three Products per month grouped by Company. I want to have month on x-axis, count of products in y-axis. The bars should represent Products and those bars are further sub-divided by Company. Please suggest a way to achieve this using plotly.

data = [['2017-03', 'Car','Mercerdes'], ['2017-03', 'Car','Mercerdes'], ['2017-03', 'Car','BMW'],['2017-03', 'Car','Audi'],
        ['2017-03', 'Burger','KFC'], ['2022-09', 'Burger','Subway'], ['2022-09', 'Coffee','Subway'],
        ['2017-03', 'Clothes','Only'], ['2022-09', 'Coffee','KFC'], ['2022-09', 'Coffee','McD']
       ]

df = pd.DataFrame(data, columns=['Month', 'Product','Company'])
df

    Month    Product    Company
0   2017-03  Car        Mercerdes
1   2017-03  Car        Mercerdes
2   2017-03  Car        BMW
3   2017-03  Car        Audi
4   2017-03  Burger     KFC
5   2022-09  Burger     Subway
6   2022-09  Coffee     Subway
7   2017-03  Clothes    Only
8   2022-09  Coffee     KFC
9   2022-09  Coffee     McD