Try this, note I have NOT tested this!!!
Note also I have loaded column K into a variant array, this is because this will really speed up this macro, because you have a multiple loop your a looping through worksheet pop column K and then also through all the worksheet.


Sub copyrow2()

Application.ScreenUpdating = False
Dim LastRow As Long
Dim ws As Worksheet
LastRow = Sheets("Pop").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim x As Long


Dim Inarr As Variant
' load worksheet pop into memory
Inarr = Worksheets("Pop").Range("K1:K" & LastRow)
For Each ws In ActiveWorkbook.Worksheets
x = 3
 If ws.Name <> "Pop" Then
   For i = 3 To LastRow


    If Inarr(i, 1) = Ws.Name Then
        Worksheets("pop").Range(i, 1).EntireRow.Copy
        ws.Cells(x, 1).PasteSpecial xlPasteValues
        x = x + 1
     End If
   Next i
   
Next ws
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub