The final code does skip the first 3 columns - this also skips the first 3 rows:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Row < 4 Then Exit Sub  'Ignore rows 1,2, and 3
    If Intersect(Target, Range("E:E, G:G, I:I , K:K, M:M, O:O, Q:Q, S:S")) Is Nothing Then Exit Sub

    If Application.CountIf(Target.EntireRow, Target.Value) > 1 Then
        Application.EnableEvents = False
        Application.Undo
        MsgBox "Don't duplicate values in a row!"
        Application.EnableEvents = True
    End If
End Sub