Append array to 2D slice, appended slice gets updated every time, please help?

ansMap := map[[3]int]bool{}
// after some operations, I need the keys appending to ans
ans := [][]int{}
// so I do this
for pair := range ansMap {
	ans = append(ans, pair[:])  // now ans is filled with the same slice

I am pretty new to go, I read when appending a slice, it is the pointer that gets passed, so when pair gets new value from ansMap, the old pair that has already been appended to ans also gets updated, I end up with ans filling with the same slice.

How can I get around this?