1. Включи логику.
2. Рукалицо.
3. Поменяй эти две строки местами.
Рукалицо, потому что достаточно немного подумать, чтобы понять в чём дело.
Ты сначала присваиваешь значение в w3x3, а потом это уже изменённое значение присваиваешь в temp.
Потому у тебя все три переменные и имеют одно и то же значение.
Если сначала присвоить temp = w3x3, а потом уже обновлять w3x3, то тогда в temp будет лежать значение до изменения... но только при условии что это какой-то из неизменяемых типов, вроде чисел, строк или кортежей из них. Если это изменяемый объект, вроде списка, словаря или обычного класса, то не прокатит.