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