Why don't you just select the additional objects before running your LISP? If filtering is needed you can use QSELECT to add them.
That way the (ssget) will pickup all the selected objects at once without you requiring to select the additional ones in LISP after starting your routine.
But if necessarily it would be possible although you will need to merge two selection sets (one the already selected objects, two the new selected objects) in your routine to get the same result and highlight them as one selection set.
This is my possible solution. No filtering or anything, but just adding new objects to your already prior selected object set. Basically the same as selecting additional objects without this routine, but if needed you can add your object filtering to the SSGET and/or your actions to perform on the selection set.
Please note that the already selected objects before running this routine are only highlighted (to indicate which ones are already included) but you cannot deselect and remove them.
(defun c:AddSelect (/ AS_CurrentSelection AS_NewSelection AS_PFMode AS_Count)
(setq AS_CurrentSelection (nth 1 (ssgetfirst)))
(setq AS_PFMode (getvar "PICKFIRST"))
(setvar "PICKFIRST" 0)
(if
AS_CurrentSelection
(progn
(setq AS_Count 0)
(repeat (sslength AS_CurrentSelection)
(vla-Highlight (vlax-ename->vla-object (ssname AS_CurrentSelection AS_Count)) :vlax-true)
(setq AS_Count (1+ AS_Count))
)
)
)
(setq AS_NewSelection (ssget))
(setvar "PICKFIRST" AS_PFMode)
(cond
(
(and
AS_CurrentSelection
AS_NewSelection
)
(progn
(setq AS_Count 0)
(repeat (sslength AS_NewSelection)
(ssadd (ssname AS_NewSelection AS_Count) AS_CurrentSelection)
(setq AS_Count (1+ AS_Count))
)
(sssetfirst nil AS_CurrentSelection)
)
)
(
AS_CurrentSelection
(sssetfirst nil AS_CurrentSelection)
)
(
AS_NewSelection
(sssetfirst nil AS_NewSelection)
)
(
T
nil
)
)
(vla-Regen (vla-get-ActiveDocument (vlax-get-acad-object)) acActiveViewport)
(princ)
)