That style of IN is not supported in SQL and I can't think of an easy workaround if you are using Dynamic SQL.
You could put the values into a temporary table (perhaps passing them as a delimited string, and "splitting" that into a temporary table?) along the lines of
SELECT [num]=1,[letter]='a'
INTO #MyTempTable
UNION ALL SELECT 2,'b'
UNION ALL SELECT 3,'c'
select *
from tabA a
JOIN #MyTempTable T
ON T.num = a.sr_no
AND T.letter = a.nm
Kristen