You've mentioned the same part, part.no and fault. But I am assuming those would be unique parts, part.nos and faults.

So the code can be

Code:
Private Sub ComboBox3_Change()

    Dim lngCol As Long
    With Worksheets("sample")
        lngCol = .Rows(1).Find(What:=Me.ComboBox3.Text, lookAt:=xlWhole).Column
        Me.ComboBox4.List = .Range("A3:A" & .Cells(.Rows.Count, lngCol).End(xlUp).Row).Offset(, lngCol - 1).Value2
        Me.ComboBox5.List = .Range("A3:A" & .Cells(.Rows.Count, lngCol).End(xlUp).Row).Offset(, lngCol).Value2
        Me.ComboBox6.List = .Range("A3:A" & .Cells(.Rows.Count, lngCol).End(xlUp).Row).Offset(, lngCol + 1).Value2
    End With
    
End Sub