Consider the following User Defined Function:
Option Explicit
Public Function RemoveItems(BigString As String, LittleString As String) As String
    Dim Good As Boolean, L, B, arrB, arrL
    Application.Volatile
    arrB = Split(Replace(BigString, " ", ""), ",")
    If InStr(LittleString, ",") = 0 Then
        For Each B In arrB
            If LittleString = B Then
            Else
                RemoveItems = RemoveItems & "," & B
            End If
        Next B
    Else
        arrL = Split(Replace(LittleString, " ", ""), ",")
        For Each B In arrB
            Good = True
                For Each L In arrL
                    If L = B Then Good = False
                Next L
                If Good Then RemoveItems = RemoveItems & "," & B
        Next B
    End If
    If RemoveItems <> "" Then RemoveItems = Mid(RemoveItems, 2)
End Function
It will remove items from the first comma-separated-string that appear in the second comma-separated-string.  for example:

In your example, you would nest the calls:
=RemoveItems(RemoveItems(A3,A1),A2)

NOTES:
- this version will accept a single item as well as a LettleString
- this version removes spaces from the strings