Recursive statement with linq
Here's my attempt. I assume, LINQ-method based approach is allowed by your problem statement.

I have not tested the code, so please cover it by unit test(s) which you may already have.
Also, please notice that this is not a pure function in the functional sense of this term. It means, the method changes the state of the arguments passed in (which may or may not be desirable in different scenarios).

private IEnumerable&lt;SubProjectDto&gt; GetProjectAndActivitiesForByOrg(IEnumerable&lt;SubProjectDto&gt; children, Guid? organiazaitonId)
{
    return children.Select(childSubProject =&gt;
    {
        childSubProject.Activities.RemoveAll(activity =&gt;
                activity.ActivityPersons.All(person =&gt; person.ResourceType.OrganizationId != organiazaitonId));

        // if (childSubProject.Children.Any()) // UPD: This check is not really required
        GetProjectAndActivitiesForByOrg(childSubProject.Children, organiazaitonId);

        return childSubProject;
    });
}