Allora fai due cose

1) Prima che la PictureBox cambi colore assicurati che il Form sia attivo.

codice:
    
       If b = a Then
            Me.Activate  'attiva il form **********
            PictureBox3.BackColor = Color.LawnGreen
            v = True
        End If
2) Metti una marea di Debug.Print nella Sub Key_Down per vedere se il codice viene letto (ovviamente lanci in modalità Debug)

codice:
 Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

        Debug.Print("KeyCode: " & e.KeyCode.ToString)

        'payer 1
        If e.KeyCode = Keys.Left Then
            'se è partito 

            Debug.Print("v è " & v.ToString)

            If v = True Then
                'se è attivato l'altro 
                If p1 = True Then
                    ' se non è attivato l'altro
                ElseIf p1 = False Then
                    p2 = True
                    PictureBox1.BackColor = Color.LawnGreen
                End If
                'se non è partito 
            ElseIf v = False Then
                Timer1.Stop()
                PictureBox3.BackColor = Color.Silver
                Label1.Text = "FALSA PARTENZA"
                a = 0
                b = 0
            End If

            'player 2
        ElseIf e.KeyCode = Keys.Right Then

            Debug.Print("Sono in player 2... v è: " & v.ToString)

            'se è partito
            If v = True Then
                'se l'altro è attivato
                If p2 = True Then
                    'se non è attivato l'altro
                ElseIf p2 = False Then
                    p1 = True
                    PictureBox2.BackColor = Color.LawnGreen
                End If
                'se non è partito
            ElseIf v = False Then
                Timer1.Stop()
                PictureBox3.BackColor = Color.Silver
                Label1.Text = "FALSA PARTENZA"
                a = 0
                b = 0
            End If
        End If
    End Sub