In your code you are using model.parameters() for both optimizers, so that model2 won’t get any updates.
After fixing this, you would expect to see the same parameters after loading the state_dict and after the first weight updates.
Since model.fc1 was updated in another way than model2.fc1, you cannot expect the subsequent iterations of the used 100 to yield the same result for .fc2.weight, since the output and thus loss would be different (otherwise there would be no need to use the aux output/loss).
Also, you can post code snippets by wrapping them into three backticks ```, which makes debugging easier.