with torch.no_grad():
    m3.conv.weight.data = m1.conv.state_dict()['weight'].int_repr().type(torch.ByteTensor)

This line doesn’t seem to be applying the dequantization.  If you want m3.conv to match m1.conv when m3 is floating point and m1 is quantized, you would need to convert the weights back to floating point.  Int_repr() returns the integer weights but it does not dequantize them.
One other thing you could consider is to run quantization on m3 directly.