You can find the code for subscribe a Contact to newsletter in \CMS\CMSModules\Newsletters\Tools\Newsletters\Newsletter_Subscribers.aspx.cs
Essentially, you are passing the contact info in to a subscriber info.
// Get contact's info
DataSet contactData = ModuleCommands.OnlineMarketingGetContactForNewsletters(contactID, "ContactFirstName,ContactMiddleName,ContactLastName,ContactEmail");
if (DataHelper.DataSourceIsEmpty(contactData))
{
continue;
}
string firstName = ValidationHelper.GetString(contactData.Tables[0].Rows[0]["ContactFirstName"], string.Empty);
string lastName = ValidationHelper.GetString(contactData.Tables[0].Rows[0]["ContactLastName"], string.Empty);
string middleName = ValidationHelper.GetString(contactData.Tables[0].Rows[0]["ContactMiddleName"], string.Empty);
string email = ValidationHelper.GetString(contactData.Tables[0].Rows[0]["ContactEmail"], string.Empty);
// Create new subscriber of contact type
subscriber = new SubscriberInfo();
subscriber.SubscriberFirstName = firstName;
subscriber.SubscriberLastName = lastName;
subscriber.SubscriberEmail = email;
subscriber.SubscriberFullName = new SubscriberFullNameFormater().GetContactSubscriberName(firstName, middleName, lastName);
subscriber.SubscriberSiteID = siteId;
subscriber.SubscriberType = PredefinedObjectType.CONTACT;
subscriber.SubscriberRelatedID = contactID;
CheckPermissionsForSubscriber(subscriber);
SubscriberInfoProvider.SetSubscriberInfo(subscriber);