Find the time between two events by customer id
You can split it into two dataframe containing only one of P1 and P2 first.

df1 = df[df.index[df['Product'] == 'P1'].tolist()]
df2 = df[df.index[df['Product'] == 'P2'].tolist()]


And then marge df1 and df2 on Customer ID and Product

df1.merge(df2, 'inner', left_on=['Customer ID', 'Product'], right_on=['Customer ID', 'Product'], copy=False)