The problem of two-sender unicast index coding consists of two senders and a set of receivers. Each receiver demands a unique message not demanded by any other receiver and has a subset of messages as its side information. Every demanded message is available with at least one of the senders. The senders avail the knowledge of the side information at all the receivers to reduce the total number of transmissions required to satisfy the demands of all the receivers. The objective is to find the minimum total of number of transmissions per message length (known as the optimal broadcast rate with finite length messages) and its limiting value as the message length tends to infinity (called the optimal broadcast rate). Achievable broadcast rates are provided for a class of the two-sender unicast index coding problem based on a special graph coloring technique called two-sender graph coloring. This result illustrates the utility of graph products in the two-sender unicast index coding problem for the first time in the literature. For another class, achievable broadcast rates are provided based on the optimal broadcast rates of three single-sender sub-problems with finite message length. This employs a code construction for the two-sender unicast index coding problem using optimal codes (including non-linear codes) of the sub-problems. Optimal broadcast rates are provided for a special class of the TUICP for which only an upper bound was known prior to this work. The optimal broadcast rates presented in this work also consider non-linear coding schemes at the two senders.