ReDim Preserve only works to modify the last index of a multi dimensional array.
You might try something like this, note that Arr3 is initially dim as a transpose of arr1 and arr2.
Dim keyColumn As Variant
Dim Pointer As Long, i As Long
keyColumn = Application.Index(arr1, 0, 2)
ReDim arr3(1 To 2, 1 To (UBound(arr1, 1) + UBound(arr2, 1)))
For i = 1 To UBound(arr2, 1)
If IsNumeric(Application.Match(arr2(i, 2), keyColumn, 0)) Then
Pointer = Pointer + 1
arr3(1, Pointer) = arr2(i, 1)
arr3(2, Pointer) = arr2(i, 2)
End If
Next i
ReDim Preserve arr3(1 To 2, 1 To Pointer)
arr3 = Application.Transpose(arr3)