SCD2 snapshot with multiple source joins

The problem I’m having

i have a qurey joining party , address and email table and building dimension customer with sdc2 behavior , not in my case i have 3 tables as source and i may get change in only one table i.e email (one customer have changes there mailid ) and now i need to handle this change in dimension , how to do it ? and also in fact table i need to change the customer key ,i.e add new generated customer key on the fact records

The context of why I’m trying to do this

I am trying to achieve SCD2

What I’ve already tried

Some example code or error messages

Put code inside backticks
  to preserve indentation
    which is especially important 
      for Python and YAML!